This invention relates to techniques of forward error correction with a communications protocol, and in particular, relates to forward error correction of MPEG-2 at the transport stream layer.
Digital video includes the steps of the encoding of moving pictures into a digital signal, broadcasting the digital signal, and decoding the digital signal into a viewable format such as a television screen or a computer monitor. With the rapid improvements in computer technology, digital video is now readily available for computer systems, etc. and will soon be widely available for broadcasting. As digital video can also incorporate the transmission of audio signals, it is believed that this technology will eventually replace current television technology (analog video), and will have broad application in many areas such as the Internet and telecommunications in general.
Because of the broad application of digital video, the International Organization For Standardization (ISO) formed ISO/IEC JTC1 SC29 WG11, more commonly known as the Motion Pictures Expert Group 2 (MPEG-2) to generate standards for broadcast quality digital video. (An earlier committee was ISO CD 11172, or MPEG-1, which created the first generation of digital video standards, which are optimised for CD-ROM. Another variant under development is MPEG-4 for low bandwidth video telephony.) In particular, MPEG-2 defines a compressed bit stream, but the actual implementation of the compression operations are up to individual manufacturers of digital video equipment.
MPEG-2 is a standard (xe2x80x9cMPEG-2 standardxe2x80x9d) with various parts at different levels of completion. Of particular interest are:
ISO/IEC DIS 13818-1 Information technology
Generic coding of moving pictures and associated audio information:
Systems
ISO/IEC DIS 13818-2 Information technology
Generic coding of moving pictures and associated audio information:
Video
ISO/IEC 13818-3:1995 Information technology
Generic coding of moving pictures and associated audio information
Part 3: Audio
and the contents of each of these references are incorporated herein by reference. The MPEG-2 standard addresses the combining of one or more elementary streams of video, audio and other data into single or multiple streams which are suitable for storage or transmission. In very general terms, the MPEG-2 standard for transmitting digital video and associated audio and other information involves the following steps: first, a digital video signal (from a digital camera or from an analog to digital converter) is compressed by analyzing and encoding the signal using spatial and temporal redundancy. Spatial redundancy refers to the redundant information inside one video frame while temporal redundancy refers to the redundant information between consecutive frames. This process generates: Intra-frames (I-frames), which contain all of the information in an entire image; Predicted frames (P-Frames), which have some compression as they are predicted based on past I-frames and/or other P-frames; and Bi-directional predicted frames (B-frames), which are the most compressed images as they are predicted from past and future I-Frames and P-Frames, Next, an audio signal is compressed by removing low power tones adjacent high power tones. Removal of these tones does not affect the signal, because the high power tones tend to mask the lower power tones, making them inaudible to the human ear. Finally, the compressed video signals, audio signals and related time stamps of those signals are assembled into packets and inserted into a Packetized Elementary Stream (PES). Each packet in a packetized elementary stream contains overhead information such as a start code, stream id, packet length, optional packetized elementary stream header and stuffing bytes, in addition to the actual packet bytes of video and audio data.
It will be apparent from the foregoing that the packetized elementary stream contains encoded video and audio data for storage or transmission. In order to multiplex several streams of packetized elementary streams, a Programme Specific Information (PSI) table is also created, which includes a series of tables to reassemble specific packetized elementary stream within multiple channels of packetized elementary streams. Thus, the packetized elementary stream and program specific information form the basis for constructing either a Program Stream (PS) or a Transport Stream (TS) of packetized elementary stream and program specific information packets, which are particularly defined in ISO/IEC International Standard 13818-1.
The Program Stream is generally suitable for communicating or storing one program of coded data and other data in error free environments, such as an optical storage device, and where processing of system coding is a major consideration. In contrast, the Transport Stream is suitable for storing or communicating one or more programs in environments where significant errors can occur, such as packet-switched networks, etc. These errors can be manifested as bit value errors within a packet, or the loss of one or more entire packets.
However, while the transport stream was intended to protect data within the transport stream from corruption in error-prone environments, the transport stream has been found to be less than satisfactory in this regard and it remains difficult to ensure reliable transmission of the transport stream through these environments. These difficulties are more particularly explained in xe2x80x9cProtecting MPEG-2: FEC schemes in DVB-C,S,Txe2x80x9d, (xe2x80x9cProtecting MPEG-2xe2x80x9d) (copyright) Copyright 1994-1998 Hewlett-Packard Company, the contents of which are incorporated herein by reference, and a copy of which is available at:
http://www.tmo.hp.com/tmo/pia/component_test/PIAApp/Notes/English/MPEGpaper2.html.
An example of error prone environments in which the transport stream can be broadcast are the various Digital Video Broadcasting Project (DVB) formats, such as Direct Broadcast Satellite (DBS), terrestrial cable networks (including coax and fibre optic etc.) or terrestrial broadcasts. In order to protect the transport stream and to achieve a Bit Error Ratio (BER) of no more than 10xe2x88x9211, Forward Error Correction (FEC) is now often added to protect the transport stream during transmission. In simple terms, the method of correcting in these formats is as follows: the original transport stream is inserted into a forward error correction encoder; the resulting signal is broadcast over the environment to a receiver; and the transport stream is recovered from the received signal by a symmetric forward error correction decoder.
Generally, a different forward error correction encoder and decoder is required for each DVB format, and this requires that each receiver have a symmetric forward error correction decoder. Variations between forward error correction encoding techniques, such as Reed-Solomon (RS) include the actual amount of error correction code added to the end each transport stream packet, whether the forward error correction packets are interleaved or spliced, and whether viterbi convolutional coding is performed. In addition to the necessity of a symmetric forward error correction decoder, it will be apparent that the addition of error correction code to the end of each packet effectively adds another layer to the protocol stack and this new layer is specific to the transmission architecture and not subject to the MPEG-2 standard. Thus, a broadcaster must ensure that each intended receiver has a symmetric forward error correction decoder.
It is an object of the present invention to provide a novel forward error correction method and system to protect a digital transport stream which obviates or mitigates at least one of the disadvantages of the prior art.
In a first aspect of the present invention, there is provided a method of creating a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, the method comprising the steps of:
receiving an MPEG data stream of data packets from an MPEG data stream source;
forming a super group including a predefined number of the data packets;
performing a selected forward error correcting operation on the super group of packets to obtain error correction data;
creating index data which relates the error correction data to one or more corresponding super group data packets;
creating a trailer group including a sufficient number of MPEG compliant packets to accommodate the error correction data and the index data, the trailer group further including code to identify each packet as optional;
arranging the error correction data and the index data into the trailer group; and,
assembling the MPEG compatible data stream with at least one super group followed by at least one trailer group corresponding with the at least one super group.
In particular, the assembly according to the method of the first aspect comprises two super groups followed by two corresponding trailer groups.
Alternately, the assembly according to the method of the first aspect comprises the super group followed by a predefined number of null packets and is then followed the trailer group. Typically, the predefined number is equivalent to an estimated maximum burst error of the broadcast environment.
Typically, the data stream according to the first aspect is an MPEG-2 transport stream; the super group comprises two-hundred-and-forty-six data packets; the trailer group comprises eleven data packets; and the forward error correction operation is Reed Solomon coding. It is generally preferred that the error correction operation be performed on parallel bytes of each packet within the super group. As found in the MPEG-2 standard, it is preferable that each of the packets in the super group includes a packet identifier and each of the packets in the trailer group includes a packet identifier different from the super group packet identifiers.
In a second aspect of the invention, there is provided a method of creating a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, comprising the steps of:
receiving an MPEG data stream of data packets from an MPEG data stream source;
creating at least one MPEG compatible packet with no data included therein;
creating an unused portion of each packet received by shifting a portion of payload data in each of the received packets into the at least one created MPEG compatible packet, the created at least one MPEG compatible packets also having an unused portion;
performing a predefined forward error correcting operation on the payload data of each packet from the previous step to obtain forward error correction data; and
arranging the error correction data in the unused portions so as to interleave the error correction data with the payload data.
Typically, the data stream in the second aspect is an MPEG-2 transport stream. It is also generally preferred that the forward error correction operation is Reed Solomon coding.
In a third aspect of the present invention, there is provided a method of creating a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, comprising the steps of:
receiving an MPEG data stream of data packets from an MPEG data stream source;
forming a super group comprising a predefined number of packets;
forming a plurality of sub-groups comprising a predefined number of packets from the super group;
creating at least one MPEG compatible packet with no data included therein;
creating an unused portion in a first packet of each sub-group by shifting a portion of payload data in each of the first packets into the at least one created MPEG compatible packet created in the previous step, the created packets being reinserted into the MPEG data stream being received in the first step;
embedding an identifier within the unused portion of the first packet of each sub-group;
performing a selected forward error correcting operation on the super group of packets to obtain error correction data;
creating index data which relates the error correction data to one or more corresponding sub-group data packets in relation to the embedded identifiers;
creating a trailer group including a sufficient number of MPEG compliant packets to accommodate the error correction data and the index data, the trailer group further including code to identify each packet as optional;
arranging the error correction data and the index data into the trailer group; and,
assembling the MPEG compatible data stream with at least one super group followed by at least one trailer group corresponding with the at least one super group.
Typically, the data stream in the third aspect is an MPEG-2 transport stream. Further, it is generally preferred that the super group comprises two-hundred-and-forty-six data packets, each sub-group comprises six data packets, the trailer group comprises ten data packets, and the forward error correction operation is Reed Solomon coding performed on parallel bytes of each packet within the super group.
It is also typical in the method of the third aspect that each of the packets in the super group include a packet identifier and each of the packets in the trailer group include a packet identifier different from the super group packet identifiers.
In a fourth aspect of the present invention, there is provided a method of creating a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, comprising the steps of:
receiving an MPEG data stream of data packets from an MPEG data stream source;
forming a super group comprising a predefined number of packets;
creating at least one MPEG compatible packet with no data included therein;
creating an unused portion in each super group packet by shifting a portion of payload data in each of the super group packets into the at least one created MPEG compatible packet, the created packets being reinserted into the MPEG data stream being received in the first step;
embedding an identifier within the unused portion of each of the super group packets;
performing a selected forward error correcting operation on the super group of packets to obtain error correction data;
creating index data which relates the error correction data to one or more corresponding super group data packets in relation to the embedded identifiers;
creating a trailer group including a sufficient number of MPEG compliant packets to accommodate the error correction data and the index data, the trailer group further including code to identify each packet as optional;
arranging the error correction data and the index data into the trailer group; and,
assembling the MPEG compatible data stream with at least one super group followed by at least one trailer group corresponding with the at least one super group.
In particular, the assembly according to the method of the fourth aspect comprises two super groups followed by two corresponding trailer groups.
Alternately, the assembly according to the method of the first aspect comprises the super group followed by a predefined number of null packets and is then followed the trailer group. Typically, the predefined number is equivalent to an estimated maximum burst error of the broadcast environment.
Typically, the data stream in the fourth aspect is an MPEG-2 transport stream, the super group comprises two-hundred-and-forty-six data packets, the trailer group comprises eleven data packets, the forward error correction operation is Reed Solomon coding and the error correction operation is performed on parallel bytes of each packet within the super group.
It is also typical in the method of the fourth aspect that each of the packets in the super group include a packet identifier and each of the packets in the trailer group include a packet identifier different from the super group packet identifiers.
In a fifth aspect of the present invention, there is provided a method of transmitting data as an enhanced MPEG compatible data stream with optional forward error correction information included therein, the method comprising the steps of:
receiving an MPEG data stream of data packets from an MPEG data stream source;
forming a super group including a predefined number of the data packets;
performing a selected forward error correcting operation on the super group of packets to obtain error correction data;
creating index data which relates the error correction data to one or more corresponding super group data packets;
creating a trailer group including a sufficient number of MPEG compliant packets to accommodate the error correction data and the index data, the trailer group further including code to identify each packet as optional;
arranging the error correction data and the index data into the trailer group;
assembling the enhanced MPEG compatible data stream with at least one super group followed by at least one trailer group corresponding with the at least one super group;
broadcasting the enhanced MPEG compatible data stream;
receiving the enhanced MPEG compatible data stream;
extracting at least one received super group and at least one received trailer group corresponding to the at least one received super group from the data stream received in the previous step; and
performing an error recovery operation on the at least one received super group using the error correction data in the at least one corresponding received trailer group.
Typically, the data stream of the fifth aspect is an MPEG-2 transport stream, the forward error correction operation is Reed Solomon coding, and the error correction operation is performed on parallel bytes of each packet within the super group.
It is also typical in the method of the fifth aspect that each of the packets in the super group include a packet identifier and each of the packets in the trailer group include a packet identifier different from the super group packet identifiers.
In a sixth aspect of the invention, there is provided a method of recovering a portion of an enhanced MPEG compatible data stream of data packets having super groups of data packets and corresponding trailer groups of optional packets having forward error correction information and indexing information included therein, comprising the steps of:
receiving the enhanced MPEG compatible data stream;
extracting at least one received super group and at least one received trailer group corresponding to the at least one received super group from the received data stream;
performing an error recovery operation on the at least one received super group using the error correction data in the at least one corresponding received trailer group;
Typically, the data stream of the sixth aspect is an MPEG-2 transport stream, the super group comprises two-hundred-and-forty-six data packets, the trailer group comprises eleven data packets, and the error recovery operation is Reed Solomon decoding.
It is also typical in the method of the sixth aspect that each of the packets in the super group include a packet identifier and each of the packets in the trailer group include a packet identifier different from the super group packet identifiers.
In a seventh aspect of the invention, there is provided a system for creating a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, comprising:
a receiver for receiving an MPEG data stream of data packets from an MPEG data stream source;
processing means for forming a super group including a predefined number of the data packets;
processing means for performing a selected forward error correcting operation on the super group of packets to obtain error correction data;
processing means for creating index data which relates the error correction data to one or more corresponding super group data packets;
processing means for creating a trailer group including a sufficient number of MPEG compliant packets to accommodate the error correction data and the index data, the trailer group further including code to identify each packet as optional;
processing means for arranging the error correction data and the index data into the trailer group;
processing means for assembling the enhanced MPEG compatible data stream with at least one super group followed by at least one trailer group corresponding with the at least one super group; and
a transmitter for transmitting the enhanced MPEG compatible data stream.
In a particular system according to the seventh aspect, the MPEG source is integral with the receiver.
In an eighth aspect of the present invention, there is provided a system for recovering a portion of an enhanced MPEG compatible data stream of data packets having super groups of data packets and associated trailer groups of optional packets having forward error correction information and indexing information included therein, comprising:
a receiver for receiving the enhanced MPEG compatible data stream;
a processing means for extracting at least one received super group and at least one received trailer group corresponding to the at least one received super group from the received data stream;
a processing means for performing an error recovery operation on the at least one received super group using the error correction data in the at least one corresponding received trailer group; and,
a transmitter for transmitting said recovered super group to an MPEG end-user.
In a particular system according to the seventh aspect, the MPEG end-user is integral with the transmitter.
In a ninth aspect of the invention, there is provided a portion of an enhanced MPEG compatible data stream with optional forward error correction information included therein, comprising:
at least one super group including a predefined number of data packets;
at least one trailer group including a predefined number of MPEG compliant packets, the at least one trailer group further including code to identify each packet as optional;
error correction data embedded within the at least one trailer group, the error correction data being obtained from a selected forward error correcting operation performed on at least one corresponding super group of data packets; and
index data embedded within the at least one trailer group which relates said error correction data to one or more said corresponding super group data packets.
In particular, the data stream according to the ninth aspect is typically an MPEG-2 transport stream. Further, the super group in the ninth aspect typically comprises two-hundred-and-forty-six data packets, the trailer group comprises eleven data packets, the forward error correction operation is Reed Solomon coding, and the error correction data was generated from parallel bytes of each packet within said super group.
It is also typical in the method of the ninth aspect that each of the packets in the super group include a packet identifier and each of the packets in the trailer group include a packet identifier different from the super group packet identifiers.
The present invention provides a novel method and system for taking an MPEG data stream generated by an MPEG encoder and creating an enhanced MPEG compliant data stream having optional error correction data included therein, such that an asymmetric decoder or end-user can process the data contained within the original MPEG data stream and will ignore the error correction data and associated index data contained in the enhanced transport stream. However, a symmetric decoder can use the error correction to correct for errors in the received enhanced transport stream.